package com.repair.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.repair.api.user.request.UserBlockRequest;
import com.repair.api.user.request.UserQueryPageRequest;
import com.repair.api.user.request.UserRegisterRequest;
import com.repair.api.user.request.UserUpdateStatusRequest;
import com.repair.api.user.request.param.UserQueryParam;
import com.repair.api.user.request.param.UserUpdateStatusParam;
import com.repair.api.user.response.UserOperateResponse;
import com.repair.api.user.response.UserQueryResponse;
import com.repair.api.user.response.data.UserInfo;
import com.repair.base.response.NoResultResponse;
import com.repair.base.response.PageResponse;
import com.repair.user.pojo.dto.UserUpdateParam;
import com.repair.user.pojo.entity.User;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 郑春雨
 * @since 2024-09-12
 */
public interface UserService extends IService<User> {

    User selectByTelephone(String telephone);

    UserOperateResponse register(UserRegisterRequest userRegisterRequest);

    UserInfo getUserInfo(Long userId);

    void updateNickName(UserUpdateParam userUpdateParam);

    PageResponse<UserInfo> getAllUsers(UserQueryPageRequest<UserQueryParam> queryParam);

    User selectById(Long id);

    UserQueryResponse<Boolean> blockUser(UserBlockRequest request);

    NoResultResponse updateUserInfo(UserUpdateStatusRequest<UserUpdateStatusParam> userUpdateRequest);

    String updatePhoto(MultipartFile file);

    //void register(UserRegisterParam userRegisterParam);
}
